API Gateway に AWS CLI でタグを追加する方法を教えてください
困っていた内容
マネージメントコンソール上からは API Gateway にタグ付けができました。
一方で、AWS CLI でステージ単位や API 単位でのタグ付けする方法がわかりません。
実行するコマンドを教えてください。
どう対応すればいいの?
tag-resource を利用することでタグの追加が可能です。
なお、REST API については、V1 の tag-resource を利用してください。
Websocket API や HTTP API については、V2 の tag-resource にてタグ付けを行うことができます。
--resource-arn に指定するパラメータは、以下のドキュメントのフォーマットに従って記述ください。
API Gateway Amazon リソースネーム (ARN) リファレンス - Amazon API Gateway
ダグ追加方法
タグ付けを行う例を記載します。
REST API の場合
- Stage 単位でタグ付け
$ aws apigateway tag-resource \ --resource-arn arn:aws:apigateway:ap-northeast-1::/restapis/<API_ID>/stages/<STAGE_NAME> \ --tags test=nakano1
- API 単位でタグ付け
$ aws apigateway tag-resource \ --resource-arn arn:aws:apigateway:ap-northeast-1::/restapis/<API_ID> \ --tags test=nakanoa2
Websocket API, HTTP API の場合
- Stage 単位でタグ付け
$ aws apigatewayv2 tag-resource \ --resource-arn arn:aws:apigateway:ap-northeast-1::/apis/<API_ID>/stages/<STAGE_NAME> \ --tags test=nakano3
- API 単位でタグ付け
$ aws apigatewayv2 tag-resource \ --resource-arn arn:aws:apigateway:ap-northeast-1::/apis/<API_ID> \ --tags test=nakano4
制約
直接タグ付けできるリソースは以下の通りです。こちらのリソース以外にはタグ付けは行なえません。
そのため、Stage や API 単位でのタグ付けはできますが、メソッド単位でのタグ付けなどはできない仕様です。
直接タグ付けできるリソース
- REST API の場合
- ApiKey
- ClientCertificate
- DomainName
- RestApi
- Stage
- UsagePlan
- VpcLink
- Websocket API, HTTP API の場合
- Api
- DomainName
- Stage
- VpcLink